package com.gitee.swsk33.demoentity.model;

import lombok.Data;

/**
 * 请求结果类
 *
 * @param <T> 数据体类型
 */
@Data
public class Result<T> {

	/**
	 * 消息
	 */
	private String message;

	/**
	 * 是否操作成功
	 */
	private boolean success;

	/**
	 * 返回的数据主体（返回的内容）
	 */
	private T data;

	/**
	 * 创建一个成功的结果，不包含数据内容
	 *
	 * @param message 消息
	 * @return 成功结果
	 */
	public static Result<Void> resultSuccess(String message) {
		Result<Void> result = new Result<>();
		result.setSuccess(true);
		result.setMessage(message);
		return result;
	}

	/**
	 * 创建一个成功的结果，包含数据内容
	 *
	 * @param message 消息
	 * @return 成功结果
	 */
	public static <T> Result<T> resultSuccess(String message, T data) {
		Result<T> result = new Result<>();
		result.setSuccess(true);
		result.setMessage(message);
		result.setData(data);
		return result;
	}

	/**
	 * 创建一个失败的结果
	 *
	 * @param message 消息
	 * @return 失败结果
	 */
	public static <T> Result<T> resultFailed(String message) {
		Result<T> result = new Result<>();
		result.setSuccess(false);
		result.setMessage(message);
		return result;
	}

}